package com.tuars.instalacionesalberti.controllers.articles;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;

import com.tuars.instalacionesalberti.connection.bd.ConnectionBaseDades;
import com.tuars.instalacionesalberti.entidades.Articles;

public class InsertarArticulos {
	
	private String errorInsert="Error al insertar los datos";
	private String titleError="Error en Base de Datos";
		
	public void introduir(Connection conexion, Articles art){

		if(art.getCodiArticle().equals(null)){
			JOptionPane.showMessageDialog(null, "El campo codigo articulo no puede estar vacio", "Campo vacio", JOptionPane.ERROR_MESSAGE);
		}else if(art.getCodiFamilia().equals(null)){
			JOptionPane.showMessageDialog(null, "Debe seleccionar una familia", "Campo vacio", JOptionPane.ERROR_MESSAGE);
		}else if(art.getCodiMarca().equals(null)){
			JOptionPane.showMessageDialog(null, "Debe seleccionar una marca", "Campo vacio", JOptionPane.ERROR_MESSAGE);
		}else{
			Statement st = null;
			try{
				
				st = conexion.createStatement();
				st.executeUpdate("INSERT INTO ARTICULO VALUES('"+art.getCodiArticle()+"','"+art.getDescripcio()+"',"+art.getPreuCost()+","+art.getPreuVenta()+",'"+art.getCodiMarca()+"','"+art.getCodiFamilia()+"')");
				
				st.close();
				conexion.close();
			}catch (SQLException e){
				JOptionPane.showMessageDialog(null, errorInsert, titleError, JOptionPane.ERROR_MESSAGE);
			}
		}
		
	}
	
	public void AssignarValoresAEntidad(Articles art, String codArt, String descripArt, int preuCost, int preuVenta, String familia, String marca) throws SQLException{
		
		ConnectionBaseDades con = new ConnectionBaseDades();
		Connection conexio = con.Conexion();
		/**
		 * Sirve para obtener el codigo de la familia obtenido al ser elejido en el JList
		 */
		Statement st = conexio.createStatement();
		ResultSet rs = st.executeQuery("SELECT Codigo_Familia FROM FAMILIA WHERE Nombre = '"+familia+"'");
		String codigoFamilia = null;
		while(rs.next()){
			codigoFamilia = rs.getString(1);
		}
		
		
		/**
		 * Sirve para obtener el codigo de la marca obtenido al ser elejido en el JList
		 */
		st = conexio.createStatement();
		rs = st.executeQuery("SELECT Codigo_Marca FROM MARCA WHERE Marca = '"+marca+"'");
		String codigoMarca = null;
		while(rs.next()){
			codigoMarca = rs.getString(1);
		}
		
		art.setCodiArticle(codArt);
		art.setDescripcio(descripArt);
		art.setPreuCost(preuCost);
		art.setPreuVenta(preuVenta);
		art.setCodiFamilia(codigoFamilia);
		art.setCodiMarca(codigoMarca);
	}

}
